#ifndef VMC_LANE_FULL_MATCHING_LFM
#define VMC_LANE_FULL_MATCHING_LFM

#include <base/defines.h>
#include <base/camera.h>

class DbgFrame;

namespace LFM
{
	class LaneMatching
	{
	public:
		 bool Calculate_Pose(
			const DlFrame &dl,
			const std::vector<hdmap_lane>& hdmap_lanes,
			const GeoPoint &gps_point,
			Camera &cam,
			Pose &pose,
			double &rmse,
			DbgFrame* dbg_frame);

	protected:
		void DrawSplines(DbgFrame* dbg_frame,
			const std::vector<ARSLane>& lanes);

		void Trans_Reconstruction(std::vector<ARSLane>& lanes,
			const Eigen::Matrix3d& R,
			const Eigen::Vector3d& T);
	};
} 

#endif 